import { defineConfig, loadEnv } from 'vite';
import vue from '@vitejs/plugin-vue';
import path from "path";
import styleImport, { VantResolve } from 'vite-plugin-style-import';
import postCssPxToRem from 'postcss-pxtorem'

// https://vitejs.dev/config/
export default defineConfig(({ command, mode }) => {
	// 检查process.cwd()路径下.env.develeport.local、.env.development、.env.local、.env这四个环境文件
	loadEnv(mode, process.cwd());
	return {

		// 静态资源基础路径 base: './' || '',
		base: './',

		resolve: {
			alias: {
				// 配置src目录
				"@": path.resolve(__dirname, "src"),
				// 导入其他目录
				"components": path.resolve(__dirname, "components")
			}
		},
		plugins: [
			vue(),
			// 配置后，Vant各组件才生效
			styleImport({
				resolves: [VantResolve()],
			}),
		],
		css: {
            // postcss: { // ⚠️关键代码
            //     plugins: [
            //         postCssPxToRem({ // 自适应，px>rem转换
            //             // rootValue: 108, // 1rem的大小
            //             rootValue: 75, // 1rem的大小
            //             propList: ['*'], // 需要转换的属性，这里选择全部都进行转换
            //         }),
			// 		{
			// 			postcssPlugin: 'internal:charset-removal',
			// 			AtRule: {
			// 				charset: (atRule) => {
			// 					if (atRule.name === 'charset') {
			// 						atRule.remove();
			// 					}
			// 				}
			// 			}
			// 		}
            //     ]
            // },
			// preprocessorOptions: {
			// 	scss: {
			// 		charset: false
			// 	}
			// }
        },
		// 跨域代理
		// server: {
		// 	host: '0.0.0.0',
		// 	'/api': {
		// 		// target: 'https://www.joinca.com',
		// 		// target: 'http://120.76.96.242:9072', //目标接口域名
		// 		target: 'http://192.168.0.31:9066', //目标接口域名
		// 		changeOrigin: true,
		// 		rewrite: (path) => path.replace(/^\/api/, '')
		// 	},
		// },
		server: {
			proxy: {
			  "/api": {
				target: "http://192.168.0.31:9066",
				changeOrigin: true,
				rewrite: (path) => path.replace(/^\/api/, ""),
			  },
			},
		  },
		build: {
			target: 'es2020',
			// chunkSizeWarningLimit: 500,
			// minify: 'terser',
			// cssCodeSplit: false, // 如果设置为false，整个项目中的所有 CSS 将被提取到一个 CSS 文件中
			// terserOptions: {
			//   compress: {
			//     // warnings: false,
			//     drop_console: false,  //打包时删除console
			//     drop_debugger: true, //打包时删除 debugger
			//     pure_funcs: ['console.log'],
			//   },
			//   output: {
			//     // 去掉注释内容
			//     comments: true,
			//   },
			// },
		  },
		  optimizedeps: {
			// include: ['schart.js']
			esbuildoptions: {
			  target: 'es2020'
			}
		  }
	};
});
